//package com.tfswx.ruleengine.compute.gzjy.felfunc;
//
//import com.greenpineyu.fel.FelEngine;
//import com.greenpineyu.fel.context.ContextChain;
//import com.greenpineyu.fel.context.FelContext;
//import com.greenpineyu.fel.context.MapContext;
//import com.tfswx.ruleengine.compute.bean.DataObject;
//import com.tfswx.ruleengine.compute.bean.GzBdsDTO;
//import com.tfswx.ruleengine.compute.gzjy.BaseFn;
//import com.tfswx.ruleengine.compute.gzjy.FelService;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @author Ricky
// * @date 2021/3/24
// */
//public class Each extends BaseFn {
//
//    @Override
//    public Object call(Object[] arguments, FelContext context) {
//        FelEngine fel = (FelEngine) context.get("fel");
//        List<DataObject> list = (List<DataObject>) arguments[0];
//        String str = String.valueOf(arguments[1]);
//        FelContext ctx = new ContextChain(context, new MapContext());
//        GzBdsDTO currGz = (GzBdsDTO) ctx.get("currGz");
//        List<DataObject> dataList = (List<DataObject>) context.get("$parant");
//
//        FelService service = (FelService) context.get("service");
//        for (DataObject akFormDataGetOutputDTO : list) {
//            ctx.set("$data", akFormDataGetOutputDTO);
//            context.set("$eachItem", akFormDataGetOutputDTO);
//            boolean eval = (Boolean) fel.eval(str, ctx);
//            service.execResult(eval, currGz, dataList);
//            context.set("$eachItem", null);
//        }
//        return null;
//    }
//
//    @Override
//    public String getZwmc() {
//        return "each";
//    }
//
//    @Override
//    public boolean isExport() {
//        return false;
//    }
//
//    @Override
//    public List<Param> getParams() {
//        List<Param> params = new ArrayList<>();
//        params.add(new Param("param1"));
//        params.add(new Param("param2"));
//        return params;
//    }
//
//    @Override
//    public String getName() {
//        return "each";
//    }
//}
